1. 部署环境
我是在阿里云上买的专有网络的云服务器,配置是:CPU 1 核,内存 1GB,操作系统 CentOS 7.3 64 位,带宽 1Mbps。配置很低,因为便宜嘛,平时自己的一些小 demo 够了。以下的部署步骤基于此环境。
之前部署过几次,都是在网络上东找找西找找的配置文章,本身对于服务器相关的知识一窍不通,因此配置完了也就忘了。最近刚在这台新服务器上部署了 Node 的运行环境,借此记录下步骤,以便日后查找,也给有需要的朋友一些参考价值。
2. 开始部署
工具
我是在 Windows 下进行部署的,用的工具是 Xshell 5,下载地址在这:https://www.netsarang.com/download/down_xsh5.html
开始部署
在 Xshell 5 上输入服务器的 IP、密码和用户,登录成功后如下图所示:

首先将 yum 更新至最新版本:
1 | yum -y update |
安装编译源代码需要的一些开发工具:
1 | yum -y groupinstall "Development Tools" |
Node.js 安装
先进入 /usr/src 文件夹
1
cd /usr/src
从官网获取稳定版本,我选择的版本是 6.11.1
1
wget https://nodejs.org/dist/v6.11.1/node-v6.11.1.tar.gz
下载完成之后,解压文件,并进入解压过后的文件夹
1
2tar zxf node-v6.11.1.tar.gz
cd node-v6.11.1执行配置脚本来进行编译预处理
1
./configure
编译源代码
1
make
编译完成之后,开始安装
1
make install
没有意外的话 Node 已经安装好了,可以敲出 node -v 来查看安装的版本号
=============================我是分割线===================================
使用 nvm 安装 Node(推荐)
安装 nvm
1
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
执行以下命令以使用 nvm
1
2export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm安装 Node 最新的发布版本
1
nvm install node
使用 Node
1
2
3nvm use node
或者
nvm run node --version (运行指定版本的 Node)具体使用请参照 nvm 的官方文档
Node 安装成功之后,可以再安装 pm2 ,用来启动和监控 Node 程序,并且可以在 Node 程序文件被替换和程序报错时,自动进行重启。
MongoDB 安装
进入 /usr/local ,下载 MongoDB 源码
1
2cd /usr/local
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.6.tgz解压安装包,重命名文件夹为 mongodb3
1
2tar zxvf mongodb-linux-x86_64-3.4.6.tgz
mv mongodb-linux-x86_64-3.4.6 mongodb3在 /usr/local 文件夹内建立 mongodata 文件夹,用于存放数据和日志以及配置文件(该位置可以自定义)
1
2
3mkdir /usr/local/mongodata
mkdir /usr/local/mongodata/db
mkdir /usr/local/mongodata/logs编辑配置文件
1
vi /usr/local/mongodata/mongo.conf
将配置文件改为如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#端口号
port=27017
#访问IP(这里设置成不限定)
bind_ip=0.0.0.0
#数据目录
dbpath=/usr/local/mongodata/db
#日志目录
logpath=/usr/local/mongodata/logs
#设置后台运行
fork=true
#日志输出方式
logappend=true
shardsvr=truedirectoryperdb=true
#开启认证(暂时不开启)
#auth=true进入到安装目录,启动运行
1
./bin/mongod --config /usr/local/mongodata/mongo.conf
打开数据库
1
./bin/mongo
需要关闭数据库时,要执行以下语句
1
db.shutdownServer()
配置账号密码,下面的 admin 用户的权限是 userAdminAnyDatabase
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33> show dbs
local 0.078GB
test 0.078GB
> use admin
switched to db admin
> db.createUser(
... {
... user: "admin",
... pwd: "admin",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> show users
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}配置完账号密码后,现在可以将配置文件中的认证放开了
1 | #开启认证 |
重启数据库,并增加账号 test1 对于 test 数据库,test1 的权限是 readWrite
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27./bin/mongo
MongoDB shell version: 3.4.5
connecting to: test
> use admin
switched to db admin
> db.auth("admin","admin")
1
> use test
switched to db test
db.createUser(
... ... {
... ... user: "test1",
... ... pwd: "test1",
... ... roles: [
... ... { role: "readWrite", db: "test" }
... ... ]
... ... }
... ... )
Successfully added user: {
"user" : "test1",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}验证 test1 账号是否添加成功,返回 1 表示验证成功
1
2
3> use test
> db.auth('test1', 'test1')
1CentOS 开机启动,找到 /etc/rc.local,将下面这句话加入
1
/usr/local/mongodb3/bin/mongod --config /usr/local/mongodata/mongo.conf
最后,需要在阿里云的控制台中找到安全组规则配置页面,将 27017 端口开放

推荐一款比较好用 MongoDB 客户端,mongobooster
Nginx 安装
进入 /etc/yum.repos.d/,创建文件 nginx.repo
1
2
3
4
5
6
7
8cd /etc/yum.repos.d
vi nginx.repo
将下面的内容写入到 nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1安装
1
yum install nginx
安装完成之后,执行如下命令查看安装位置
1
2[root@iz2ze2pp5x5s9w6jcr1ndxz /]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz配置反向代理
1
vi /etc/nginx/nginx.conf
将配置文件中的 server 选项如下配置

这里监听的是默认端口 80,你也可以改成其他端口,不过切记,如果是云服务器的网络是专有网络,一定要在阿里云控制台配置对应端口的安全组规则。
开放防火墙中的某些端口
1
2#查看所有打开的端口
firewall-cmd --zone=public --list-ports
1
2
3
4#加入一个端口到区域
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=27017/tcp --permanent
#加上 --permanent 表示永久生效,否则在服务器重启后改规则失效常用命令
1
2
3
4
5/usr/sbin/nginx #启动Nginx服务
/usr/sbin/nginx -s stop #关闭Nginx服务
/usr/sbin/nginx -t #检测Nginx的配置文件是否正确
/usr/sbin/nginx -s reload #重启Nginx服务
/etc/nginx/nginx.conf #Nginx配置文件位置
3. 总结
至此,如果不出什么意外的话,Node + MongoDB + Nginx 的环境应该就部署好了,在此作为一个记录,也希望能够帮助到有此需求的朋友。